package IU;

import Controladores.CtrlArea;
import Controladores.CtrlModulo;
import Controladores.CtrlRol;
import Controladores.CtrlRolAreaModulo;
import Controladores.CtrlCargo;
import Entidades.Cargo;
import Entidades.Proveedorproducto;
import java.util.List;
import java.util.Vector;
import javax.swing.JOptionPane;
import utiles.Validador;

public class ABMCargo extends javax.swing.JFrame {

    private String nombreCargo, fechaAlta, fechaBaja;
    Cargo cargo;
    TablaPersonalizada tableModel;
    private List listaC;
    private List listaA;
    private List listaM;
    private List listaR;
    private List listaRAM;
    CtrlCargo controladorCargo;
    CtrlArea controladorArea;
    CtrlModulo controladorModulo;
    CtrlRol controladorRol;
    CtrlRolAreaModulo controladorRolAreaModulo;
    Validador validador;
    Vector estasCargos = new Vector();

    public ABMCargo(String o) {
        initComponents();
        String operario = o;
        jTextFieldUsuario5.setText(operario);
        controladorArea = new CtrlArea();
        controladorModulo = new CtrlModulo();
        controladorRol = new CtrlRol();
        controladorRolAreaModulo = new CtrlRolAreaModulo();
        controladorCargo = new CtrlCargo();
        //MODIFICAR/ELIMINAR: cargar jtablecargos
        cargarTabla();
        //LISTAR Cargo: jcomboboxnombrecargo
        //cargarComboCargos();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel1 = new javax.swing.JPanel();
        jButtonGuardar = new javax.swing.JButton();
        jPanel5 = new javax.swing.JPanel();
        jTextFieldNombreCargo = new javax.swing.JTextField();
        jLabel12NombreCargo = new javax.swing.JLabel();
        jPanel2 = new javax.swing.JPanel();
        jScrollPane2 = new javax.swing.JScrollPane();
        jScrollPane3 = new javax.swing.JScrollPane();
        jTableCargos = new javax.swing.JTable();
        jPanel4 = new javax.swing.JPanel();
        eliminar = new javax.swing.JButton();
        modificar = new javax.swing.JButton();
        jLabel14NombreCargo = new javax.swing.JLabel();
        jTextFieldNombre = new javax.swing.JTextField();
        jPanel3 = new javax.swing.JPanel();
        jScrollPane5 = new javax.swing.JScrollPane();
        ButtBuscar = new javax.swing.JPanel();
        jScrollPane4 = new javax.swing.JScrollPane();
        jScrollPane7 = new javax.swing.JScrollPane();
        jTableCargosListar = new javax.swing.JTable();
        jButtonSalir = new javax.swing.JButton();
        jPanel18 = new javax.swing.JPanel();
        jTextFieldUsuario5 = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Gestionar Cargos - Sistema Gestor de Pesaje para Bodegas");

        jTabbedPane1.setForeground(new java.awt.Color(102, 0, 102));
        jTabbedPane1.setFont(new java.awt.Font("Segoe UI", 3, 12)); // NOI18N

        jButtonGuardar.setFont(new java.awt.Font("Segoe UI", 3, 12)); // NOI18N
        jButtonGuardar.setForeground(new java.awt.Color(102, 0, 102));
        jButtonGuardar.setText("Guardar");
        jButtonGuardar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonGuardarActionPerformed(evt);
            }
        });

        jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED), "Cargo:", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 3, 12), new java.awt.Color(102, 0, 102))); // NOI18N
        jPanel5.setForeground(new java.awt.Color(102, 0, 102));
        jPanel5.setFont(new java.awt.Font("Segoe UI", 3, 12)); // NOI18N

        jTextFieldNombreCargo.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));

        jLabel12NombreCargo.setFont(new java.awt.Font("Segoe UI", 1, 11)); // NOI18N
        jLabel12NombreCargo.setText("Nombre:");

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
                .addContainerGap(27, Short.MAX_VALUE)
                .addComponent(jLabel12NombreCargo)
                .addGap(18, 18, 18)
                .addComponent(jTextFieldNombreCargo, javax.swing.GroupLayout.PREFERRED_SIZE, 400, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addGap(29, 29, 29)
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextFieldNombreCargo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel12NombreCargo))
                .addContainerGap(43, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap(20, Short.MAX_VALUE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButtonGuardar))
                .addGap(62, 62, 62))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(32, 32, 32)
                .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(99, 99, 99)
                .addComponent(jButtonGuardar)
                .addContainerGap(116, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Alta Cargo", jPanel1);

        jScrollPane2.setAutoscrolls(true);

        jTableCargos.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Nombre de Cargos", "Fecha de Baja"
            }
        ));
        jTableCargos.setFillsViewportHeight(true);
        jTableCargos.setMinimumSize(new java.awt.Dimension(55, 55));
        jTableCargos.setPreferredSize(new java.awt.Dimension(200, 42));
        jTableCargos.setRowHeight(14);
        jTableCargos.getTableHeader().setResizingAllowed(false);
        jTableCargos.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTableCargosMouseClicked(evt);
            }
        });
        jScrollPane3.setViewportView(jTableCargos);

        jScrollPane2.setViewportView(jScrollPane3);

        jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED), "Datos:", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 3, 12), new java.awt.Color(102, 0, 102))); // NOI18N

        eliminar.setFont(new java.awt.Font("Segoe UI", 3, 12)); // NOI18N
        eliminar.setForeground(new java.awt.Color(102, 0, 102));
        eliminar.setText("Eliminar");
        eliminar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                eliminarActionPerformed(evt);
            }
        });

        modificar.setFont(new java.awt.Font("Segoe UI", 3, 12)); // NOI18N
        modificar.setForeground(new java.awt.Color(102, 0, 102));
        modificar.setText("Modificar");
        modificar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                modificarActionPerformed(evt);
            }
        });

        jLabel14NombreCargo.setFont(new java.awt.Font("Segoe UI", 1, 11)); // NOI18N
        jLabel14NombreCargo.setText("Nombre:");

        jTextFieldNombre.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanel4Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(modificar)
                        .addGap(32, 32, 32)
                        .addComponent(eliminar))
                    .addGroup(jPanel4Layout.createSequentialGroup()
                        .addGap(51, 51, 51)
                        .addComponent(jLabel14NombreCargo)
                        .addGap(34, 34, 34)
                        .addComponent(jTextFieldNombre, javax.swing.GroupLayout.DEFAULT_SIZE, 419, Short.MAX_VALUE)))
                .addGap(49, 49, 49))
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addGap(28, 28, 28)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel14NombreCargo, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextFieldNombre, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 42, Short.MAX_VALUE)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(modificar)
                    .addComponent(eliminar))
                .addContainerGap())
        );

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(57, 57, 57)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 505, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(80, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addGap(23, 23, 23)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 137, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 26, Short.MAX_VALUE)
                .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(52, 52, 52))
        );

        jTabbedPane1.addTab("Modificar/Eliminar Cargo", jPanel2);

        jScrollPane5.setAutoscrolls(true);

        ButtBuscar.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED), "Datos de Cargos", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 3, 12), new java.awt.Color(102, 0, 102))); // NOI18N

        jScrollPane4.setAutoscrolls(true);

        jTableCargosListar.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Nombre de Cargos", "Fecha de Baja"
            }
        ));
        jTableCargosListar.setFillsViewportHeight(true);
        jTableCargosListar.setMinimumSize(new java.awt.Dimension(55, 55));
        jTableCargosListar.setPreferredSize(new java.awt.Dimension(200, 42));
        jTableCargosListar.setRowHeight(14);
        jTableCargosListar.getTableHeader().setResizingAllowed(false);
        jTableCargosListar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTableCargosListarMouseClicked(evt);
            }
        });
        jScrollPane7.setViewportView(jTableCargosListar);

        jScrollPane4.setViewportView(jScrollPane7);

        javax.swing.GroupLayout ButtBuscarLayout = new javax.swing.GroupLayout(ButtBuscar);
        ButtBuscar.setLayout(ButtBuscarLayout);
        ButtBuscarLayout.setHorizontalGroup(
            ButtBuscarLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(ButtBuscarLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 477, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(48, Short.MAX_VALUE))
        );
        ButtBuscarLayout.setVerticalGroup(
            ButtBuscarLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(ButtBuscarLayout.createSequentialGroup()
                .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(27, Short.MAX_VALUE))
        );

        jScrollPane5.setViewportView(ButtBuscar);

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 531, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(54, Short.MAX_VALUE))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addGap(21, 21, 21)
                .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 330, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(39, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Listar Cargos", jPanel3);

        jButtonSalir.setFont(new java.awt.Font("Segoe UI", 3, 12)); // NOI18N
        jButtonSalir.setForeground(new java.awt.Color(102, 0, 102));
        jButtonSalir.setText("Salir");
        jButtonSalir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonSalirActionPerformed(evt);
            }
        });

        jPanel18.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED), "Usuario Registrado", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 3, 11), new java.awt.Color(102, 0, 102))); // NOI18N
        jPanel18.setForeground(new java.awt.Color(102, 0, 102));

        jTextFieldUsuario5.setEditable(false);
        jTextFieldUsuario5.setFont(new java.awt.Font("Segoe UI", 1, 11));
        jTextFieldUsuario5.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
        jTextFieldUsuario5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldUsuario5ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel18Layout = new javax.swing.GroupLayout(jPanel18);
        jPanel18.setLayout(jPanel18Layout);
        jPanel18Layout.setHorizontalGroup(
            jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel18Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTextFieldUsuario5, javax.swing.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel18Layout.setVerticalGroup(
            jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel18Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTextFieldUsuario5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(28, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 600, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 45, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jButtonSalir)
                    .addComponent(jPanel18, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(47, 47, 47))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel18, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(282, 282, 282)
                .addComponent(jButtonSalir)
                .addContainerGap(27, Short.MAX_VALUE))
            .addGroup(layout.createSequentialGroup()
                .addComponent(jTabbedPane1)
                .addGap(10, 10, 10))
        );

        jTabbedPane1.getAccessibleContext().setAccessibleName("Alta Área");

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-918)/2, (screenSize.height-466)/2, 918, 466);
    }// </editor-fold>//GEN-END:initComponents

    private void refresh() {
        jTextFieldNombreCargo.setText("");
    }

private void jTableCargosMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTableCargosMouseClicked
    cargarCampos();
}//GEN-LAST:event_jTableCargosMouseClicked

private void jButtonSalirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSalirActionPerformed
    this.dispose();
}//GEN-LAST:event_jButtonSalirActionPerformed

////////////////////////////ALTA ////////////////////////////
private void jButtonGuardarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonGuardarActionPerformed
    boolean ver = false;
    nombreCargo = jTextFieldNombreCargo.getText();
    fechaAlta = Validador.getInstance().obtenerFechaSistema();
    fechaBaja = "";
    if ((verificar(nombreCargo))) {
        //System.out.println("dentro del if, pasó el verificar");
        Cargo ca = new Cargo();
        ca.setNombreCargo(nombreCargo);
        //System.out.println("Cargo " + ca.toString());
        try {
            controladorCargo.guardarCargo(ca);
            //System.out.println("guardó el Cargo nuevo");
            JOptionPane.showMessageDialog(this, "El nuevo cargo se ha guardado exitosamente", "Alta Cargo", JOptionPane.INFORMATION_MESSAGE);
        } catch (Exception e) {
            //System.out.println(e);
            //System.out.println("No se pudo guardar el Cargo nuevo");
        }
    }
    refresh();//se limpia el nombre nuevo
    cargarTabla();
    //cargarComboCargos();
}//GEN-LAST:event_jButtonGuardarActionPerformed

    //al iniciar componentes, al guardar (alta), se carga este combo q está en la ficha LISTARC: jcomboboxnombrecargo
    private void cargarComboCargos(){
//        try {
//            listaC = controladorCargo.buscarTodosCargo();
//        } catch (Exception e) {
//            //System.out.println(e);
//            //System.out.println("No se pudieron recuperar los Cargos");
//        }
//        jComboBoxNombreCargo.removeAllItems();
//        for (int i = 0; i < listaC.size(); i++) {
//            Vector fila = new Vector();
//            Cargo ca = (Cargo) listaC.get(i);
//            fila.add(ca.getNombreCargo());
//            jComboBoxNombreCargo.addItem(fila.get(0));
//        }
    }

//MODIFICAR/ELIMINAR: boton modificar nombre 
private void modificarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_modificarActionPerformed
    int ind = jTableCargos.getSelectedRow();
    if (ind < 0) {
        JOptionPane.showMessageDialog(this, "Debe seleccionar un Cargo para modificar", "Modificar Cargo", JOptionPane.INFORMATION_MESSAGE);
    } else {
        nombreCargo = jTextFieldNombre.getText();
//        fechaBaja = jTextFieldFechaBajaCargo.getText();
        cargo = (Cargo) listaC.get(ind);
        String nombreCargoOriginal = cargo.getNombreCargo();
        if( !nombreCargoOriginal.equals(nombreCargo)){
            if (verificar(nombreCargo) && (Validador.getInstance().esFechaValida(fechaBaja) || fechaBaja.equals(""))) {//Validador.getInstance().obtenerFechaSistema();//validador.getInstance().soloContieneLetrasYEspacios(nombre)
                cargo.setNombreCargo(nombreCargo);
                cargo.setFechaFin(fechaBaja);
                try {
                    controladorCargo.modificarCargo(cargo);
                    JOptionPane.showMessageDialog(this, "La modificación fue realizada de forma Exitosa", "Modificar Cargo", JOptionPane.INFORMATION_MESSAGE);
                    cargarTabla();
                    //cargarComboCargos();
                    limpiarCampos();
                } catch (Exception e) {
                    //System.out.println(e);
                    //System.out.println("No se pudo modificar el Cargo");
                }
            }
        }
        else{
            if ( Validador.getInstance().esFechaValida(fechaBaja) || fechaBaja.equals("")) {//Validador.getInstance().obtenerFechaSistema();//validador.getInstance().soloContieneLetrasYEspacios(nombre)
                //area.setNombreArea(nombreArea);
                cargo.setFechaFin(fechaBaja);
                try {
                    controladorCargo.modificarCargo(cargo);
                    JOptionPane.showMessageDialog(this, "La modificación fue realizada de forma Exitosa", "Modificar cargo", JOptionPane.INFORMATION_MESSAGE);
                    cargarTabla();
                    //cargarComboAreas();
                    limpiarCampos();
                } catch (Exception e) {
                    //System.out.println(e);
                    //System.out.println("No se pudo modificar el cargo");
                }
            }
        }
    }
}//GEN-LAST:event_modificarActionPerformed

    private void cargarCampos() {
        int fila = jTableCargos.getSelectedRow();
        Cargo c = new Cargo();
        c = (Cargo) listaC.get(fila);
        jTextFieldNombre.setText(c.getNombreCargo());
//        jTextFieldFechaBajaCargo.setText(c.getFechaFin());
    }

    //al iniciar componentes, al guardar (alta), al modificar y al eliminar cargo esta tabla q está en la ficha MODIFICAR/ELIMINAR: jtablecargos
    private void cargarTabla() {
        String[] encabezados = new String[2];
        encabezados[0] = "Nombre Cargo";//Nombre de
        encabezados[1] = "Fecha Baja";
        tableModel = new TablaPersonalizada(encabezados);
        jTableCargos.setModel(tableModel);
        jTableCargosListar.setModel(tableModel);
        try {
            listaC = controladorCargo.buscarTodosCargo();
            //System.out.println("tamaño de lista Cargos" + listaC.size());
            for (int i = 0; i < listaC.size(); i++) {
                Vector fila = new Vector();
                Cargo ca = (Cargo) listaC.get(i);
                fila.add(ca.getNombreCargo());
                fila.add(ca.getFechaFin());// Agregada por Analía
                tableModel.addRow(fila);
            }
        } catch (Exception e) {
            ////System.out.println(e);
            ////System.out.println("No se pudieron recuperar los Cargos");
        }
    }

    //una vez q modifico u elimino limpio el text hasta q vuelva a seleccionar en la tabla
    private void limpiarCampos() {
        jTextFieldNombre.setText("");
//        jTextFieldFechaBajaCargo.setText("");
    }
    
//MODIFICAR/ELIMINAR: boton eliminar nombre 
private void eliminarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_eliminarActionPerformed
    int ind = jTableCargos.getSelectedRow();
    if (ind < 0) {
        JOptionPane.showMessageDialog(this, "Debe seleccionar un Cargo para eliminar", "Eliminar Cargo", JOptionPane.INFORMATION_MESSAGE);
    } else {
        //nombreCargo = jTextFieldNombre.getText();
        cargo = (Cargo) listaC.get(ind);
        jTextFieldNombre.setText(cargo.getNombreCargo());//esto lo hago por q si 1º intenté modificar el nombre y no pude, es p q me vuelva a poner el nombre original de la tabla, q es el q voy a eliminar
//        jTextFieldFechaBajaCargo.setText(cargo.getFechaFin());//esto lo hago por q si 1º intenté modificar la fecha fin y no pude, es p q me vuelva a poner la fecha fin original de la tabla, q es la q voy a intentar eliminar
        int rta = JOptionPane.showConfirmDialog(this, "Está seguro que desea ELIMINAR el Cargo:\n " + cargo.getNombreCargo() + " ?", "Eliminar Cargo", JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE);
        if (rta == 0) {
            fechaBaja = Validador.getInstance().obtenerFechaSistema();
            ////System.out.println("La fecha de hoy es: " + fechaBaja);
            cargo.setFechaFin(fechaBaja);
            try {
                controladorCargo.modificarCargo(cargo);
                JOptionPane.showMessageDialog(this, "La eliminación fue realizada de forma Exitosa", "Eliminar Cargo", JOptionPane.INFORMATION_MESSAGE);
                cargarTabla();
                //cargarComboCargos();
                limpiarCampos();
            } catch (Exception e) {
                ////System.out.println(e);
                //System.out.println("No se pudo eliminar el Cargo");
            }
        }
    }
}//GEN-LAST:event_eliminarActionPerformed

//LISTAR: boton buscar
//////////////////////////////////////////////
//este da error porque devuelve nulo ya que no hay ninguna provincia seleccionada da nul pointer exception    
/////////////////LISTAR////////////////////
//AGREGAR PROVEEDORES: boton guardar
//AGREGAR PROVEEDORES: boton eliminar
private void jTableCargosListarMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTableCargosListarMouseClicked
    //cargarCampos();
}//GEN-LAST:event_jTableCargosListarMouseClicked

private void jTextFieldUsuario5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldUsuario5ActionPerformed
    // TODO add your handling code here:
}//GEN-LAST:event_jTextFieldUsuario5ActionPerformed

//////////////////LISTAR///////////////

    private boolean verificar(String nombre) {
        boolean ver = false;
        if ( nombre == null ? "" != null : nombre.equals("")) {
            JOptionPane.showMessageDialog(this, "Por favor ingrese nombre", "Error", JOptionPane.ERROR_MESSAGE);

        } else if (!validador.getInstance().soloContieneLetrasYEspacios(nombre)) {
            JOptionPane.showMessageDialog(this, "Nombre inválido: Ingrese sólo letras y espacios para nombre.", "Error", JOptionPane.ERROR_MESSAGE);
        } else if (repetido(nombre)) {
            JOptionPane.showMessageDialog(this, "El nombre ya está utilizado", "Error", JOptionPane.ERROR_MESSAGE);
        } else {
            ver = true;
        }
        return ver;
    }

    private boolean repetido(String nombre) {//si esta repetido devuelve true
        boolean estarepetido = false;
        Cargo operar = new Cargo();
        try {
            operar = controladorCargo.buscarCargoNombre(nombre);
            estarepetido = true;
            //System.out.println("Encontró el nombre en un elemento");
        } catch (Exception e) {
            //System.out.println("No está repetido el mismo nombre en otro elemento");
        }
        return estarepetido;
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel ButtBuscar;
    private javax.swing.JButton eliminar;
    private javax.swing.JButton jButtonGuardar;
    private javax.swing.JButton jButtonSalir;
    private javax.swing.JLabel jLabel12NombreCargo;
    private javax.swing.JLabel jLabel14NombreCargo;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel18;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JScrollPane jScrollPane5;
    private javax.swing.JScrollPane jScrollPane7;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTable jTableCargos;
    private javax.swing.JTable jTableCargosListar;
    private javax.swing.JTextField jTextFieldNombre;
    private javax.swing.JTextField jTextFieldNombreCargo;
    private javax.swing.JTextField jTextFieldUsuario5;
    private javax.swing.JButton modificar;
    // End of variables declaration//GEN-END:variables

    ///////////////AGREGAR PROVEEDOR A PRODUCTO:
    private void cargarComboNombreProdAgregar() {
    }

    private void cargarComboRazonAgregar() {
    }

    private void mostrarEnLaTabla(Proveedorproducto pp) {
    }

    private void limpiarCamposProdAgregar() {
    }

    private void limpiarDatos() {
    }

    private void limpiatDatos() {
    }

    private void limpiarDatos1() {
    }
}
